export default {
	namespaced: true,
	state: {
		statusBarHeight: 0, // 状态导航栏高度
		navBarHeight: 0, // 导航栏高度(标题栏高度)
		navHeight: 0, // 总体高度
		windowWidth: 0, // 可视化高度
	},
	mutations: {
		UPDATE_STATUS_BAR_HEIGHT: function(state, value) {
			state.statusBarHeight = value
		},
		UPDATE_NAV_BAR_HEIGHT: function(state, value) {
			state.navBarHeight = value
		},
		NAV_BAR_TOP: function(state, value) {
			state.navBarTop = value
		},
		UPDATE_NAV_HEIGHT: function(state, value) {
			state.navHeight = value
		},
		UPDATE_WINDOW_WIDTH: function(state, value) {
			state.windowWidth = value
		},
	},
	getters: {

	},
	actions: {
		/* 获取系统参数 */
		getSystemInfo({
			commit
		}) {
			// 获取状态栏高度
			const statusBarHeight = uni.getSystemInfoSync().statusBarHeight;
			let navBarHeight = 0;
			// #ifdef MP-WEIXIN
			// 获取胶囊按钮位置信息
			const menuButton = uni.getMenuButtonBoundingClientRect();
			// (胶囊上部高度-状态栏高度)*2 + 胶囊高度 = 导航栏高度（不包含状态栏）
			navBarHeight = menuButton.height + (menuButton.top - statusBarHeight) * 2 + 10;
			// #endif

			// #ifdef H5 || APP
			navBarHeight = 40;
			// #endif

			// 状态栏高度 + 导航栏高度 = 头部高度
			let navHeight = statusBarHeight + navBarHeight;

			console.log("状态栏高度：", statusBarHeight)
			console.log("导航栏高度：", navBarHeight)
			console.log("导航栏总高度：", navHeight)
			
			// windowHeight = 屏幕高度 - tabbar高度 - 头部高度
			// 但是我们自定义了导航栏，windowHeight = 屏幕高度 - tabbar高度
			// 没有使用自定义导航栏的页面获取的windowHeight是不一样的，所以不能放在这里写死
			// let windowWidth = uni.getSystemInfoSync().windowWidth;
			
			// 保存到状态管理器
			commit('UPDATE_STATUS_BAR_HEIGHT', statusBarHeight)
			commit('UPDATE_NAV_BAR_HEIGHT', navBarHeight)
			commit('UPDATE_NAV_HEIGHT', navHeight)
		}
	}
}